package cn.com.header.zbpk.account.service;

import cn.com.header.core.IPage;
import cn.com.header.core.ISort;
import cn.com.header.core.vo.TreeVO;
import cn.com.header.zbpk.account.entity.Authority;

import java.util.List;
import java.util.Set;

/**
 * 权限资源
 * @author Yuanyifeng
 * @date 2017-11-18
 * @time 13:58
 */
public interface IAuthorityService {

    /**
     * 根据用户ID查询用户所拥有的资源权限Id
     * @param userId 用户ID
     * @return 角色ID集合
     */
    List<TreeVO> getAuthByUserIdAndParentId(
           Long userId);

    List<Authority> getAllAuth();

    /**
     * 按模板查找权限列表集合
     * @param authority  权限模板
     * @param fields 权限字段集合
     * @param sortSet 排序
     * @param page 分页
     * @return 权限列表集合
     */
    Set<Authority> queryAuthorityListByTemplate(Authority authority, Set<String> fields, Set<ISort> sortSet, IPage page);


    /**
     *
     * @param id  用户Id
     * @return  用户权限集合
     */
    Set<String> queryAuthorityByUserId(Long id);
}
